// pages/Comments/Comments.js

const request = require('../../utils/util')

const url = getApp().globalData.defaultUrl

Page({

  /**
   * 页面的初始数据
   */
  data: {
    imgList: [],
    description:'',
    paths:[],
    type:'',
    phone:'',
    address:'',
    name:''
  },

  textareaAInput(e) {
    this.setData({
      description: e.detail.value,
    })
    console.log("描述：",this.data.description)
  },

  inputPhone(e){
      this.setData({
        phone: e.detail.value,
      })   
  },

  inputAddress(e){
    this.setData({
      address: e.detail.value,
    })
    console.log("地址：",this.data.address)
  },


  ChooseImage() {
    wx.chooseImage({
      count: 4, //默认9
      sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图，默认二者都有
      sourceType: ['album'], //从相册选择
      success: (res) => {
        console.log(res)

        if (this.data.imgList.length != 0) {
          this.setData({
            imgList: this.data.imgList.concat(res.tempFilePaths)
          })
        } else {
          this.setData({
            imgList: res.tempFilePaths
          })
        }
      }
    });
  },

  ViewImage(e) {
    wx.previewImage({
      urls: this.data.imgList,
      current: e.currentTarget.dataset.url
    });
  },

  DelImg(e) {
    wx.showModal({
      title: '删除图片',
      content: '确定要删除这张图片吗？',
      cancelText: '取消',
      confirmText: '删除',
      success: res => {
        if (res.confirm) {
          this.data.imgList.splice(e.currentTarget.dataset.index, 1);
          this.setData({
            imgList: this.data.imgList
          })
        }
      }
    })
  },

  submit(img){
    request.sendRequest("/repair/addrepair","POST",{
      description:this.data.description,
      type:this.data.type,
      phone:this.data.phone,
      images:img,
      address:this.data.address
    }).then((res)=>{
      console.log(res)
    }).catch((err)=>{
      console.log(err)
    })

    wx.showToast({
      title: '反馈成功',
      icon: 'none', // 提示框图标，none表示不显示图标
      duration: 2000 // 提示框持续时间，单位为毫秒，默认值是1500
    });

    wx.redirectTo({
      url: '../repair/repair',
    })
  },

  SubmitImages() {
    const PhoneReg = /^1[3-9]\d{9}$/
    // console.log(this.data.description == '' || !PhoneReg.test(this.data.phone))
    if(this.data.description == '' || !PhoneReg.test(this.data.phone) || this.data.address == ""){
      wx.showToast({
        title: '输入有误',
        icon: 'none', // 提示框图标，none表示不显示图标
        duration: 2000 // 提示框持续时间，单位为毫秒，默认值是1500
      });
      return;
    }
    let token = wx.getStorageSync('token');
    const imgList = this.data.imgList;
    const uploadPromises = imgList.map(img => this.uploadFile(img, token));
  
    Promise.all(uploadPromises)
      .then(results => {
        // console.log('所有文件上传成功：', results);
        const paths = results.map(item =>{
          const jsonData = JSON.parse(item.data)
          return jsonData.data[0]
        })
        this.submit(paths)
      })
      .catch(error => {
        console.error('文件上传失败：', error);
      });
  },
  
  // 封装上传单个文件的方法
  uploadFile(filePath, token) {
    return new Promise((resolve, reject) => {
      wx.uploadFile({
        filePath: filePath,
        name: 'images',
        url: url+'/upload-images',
        header: {
          'token': token // 将 token 添加到请求头中
        },
        success: (res) => {
          resolve(res);
        },
        fail: (err) => {
          reject(err);
        }
      });
    });
  },
  
  

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const type = options.type
    const name = options.name
    this.setData({
      type:type,
      name:name
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})